#include<stdio.h>
#include<stdlib.h>
#define InitSize 10

typedef int ElemType; //构造线性表结构
typedef struct {
    ElemType *data;
    int length;
    int MaxSize;
}SqList;

void initSqList(SqList *L);
void increaseSize(SqList *L, int len);

int main(){
    SqList L;
    initSqList(&L);
    printf("%d, %d\n", L.length, L.MaxSize);
    return 0;
}

void initSqList(SqList *L){
    //malloc分配一块内存块并返回首块指针，类型强转时定义了内存块的元素类型（元素大小）
    L->data = (ElemType *)malloc(sizeof(ElemType)*InitSize);    //使用一个数据指针接收malloc分配块的首字节地址。
    L->length = 0;
    L->MaxSize = InitSize;
}

void increaseSize(SqList *L, int len){
    ElemType *temp = L->data;
    L->data = (ElemType *)malloc((L->MaxSize+len)*sizeof(ElemType));
    for(int i=0;i<L->length;i++){
        L->data[i] = temp[i];
    }
    L->MaxSize = L->MaxSize + len;
    free(temp);
}